温故而知新,系统整理一下。

Okhttp

第一点:谷歌官方在6.0以后在Android sdk已经移除了httpClient,加入我们okHttp.

第二点:okHttp支持SPDY(是谷歌开发的基于TCP的应用层协议,用于最小化网络延迟,提升网络速度,优化用户的网络使用体验. SPDY并不是一种替代http的协议,只是对http的一种增强.)允许连接在一主机的所有请求分享一个socket.如果SPDY不可用.会使用连接池来减少请求延迟.利用响应缓存来避免重复的网络请求.即便是网络出现问题时,okhttp依然起作用.它将从常见的链接问题当中回复.如果你的服务器有多个IP地址,当地一个失败时,okhttp会自动尝试连接其他的地址.这对于IPV4和IPV6以及寄宿在多个数据中心的服务而言,是非常有必要的,所以okhttp的稳定性可以说是非常棒的.第一点:谷歌官方在6.0以后在android 打开已经移除了httpClient 加入了okHttp.

第三点:使用方式:

最常使用的get请求 同步请求:

//1.创建OkHttpClient实例对象
        OkHttpClient okHttpClient = new OkHttpClient();

String url = Constants.URLS.BASEURL + "home?index=0";

//2.创建一个请求
Request request = new Request.Builder()
        .get()//get方法
        .url(url)//对应的url
        .build();

//3.发起请求
Response response = okHttpClient.newCall(request).execute();

//4.取出结果
String resultJsonString = response.body().string();

异步的请求:

//1.创建OkHttpClient实例对象
        OkHttpClient okHttpClient = new OkHttpClient();

        //home
        // ?index=0==>参数
        String url = Constants.URLS.BASEURL + "home?index=0";
        //2.创建一个请求
        Request request = new Request.Builder()
                .get()//get方法
                .url(url)//对应的url
                .build();
//3.发起请求
okHttpClient.newCall(request).enqueue(new Callback() {
    @Override
    public void onFailure(Request request, IOException e) {
        //请求成功
    }

    @Override
    public void onResponse(Response response) throws IOException {
        //请求失败
    }
});

Retrofit2

——相关资料推荐
okHttp使用及其优势
okHttp使用教程
OKHttp源码解析

Retrofit2与RxJava用法大全
2016移动新技术预览,Retrofit为何这么久才火🔥
快速Android开发系列网络篇之Retrofit

【Android】Android2.3版本以上谷歌为何推荐使用HttpURLConnection却弃用 Apache HttpClient